/**************************************************************************************************
* Title: SumAxisAlignedBox.h
* Author: Gael Huber
* Description: An axis aligned bounding box
**************************************************************************************************/
#ifndef __SUMAXISALIGNEDBOX_H__
#define __SUMAXISALIGNEDBOX_H__

#include "SumMath.h"

class AxisAlignedBox {
public:
	// Constructors and destructors
	AxisAlignedBox(void);
	AxisAlignedBox(const Vector3_16f& p, const Vector3_16f& s);
	AxisAlignedBox(const AxisAlignedBox& rhs);
	~AxisAlignedBox(void);

	// Assignment operator
	AxisAlignedBox& operator=(const AxisAlignedBox& rhs);

	// Equivalence operators
	bool operator==(const AxisAlignedBox& rhs);
	bool operator!=(const AxisAlignedBox& rhs);

	// Accessors
	Vector3_16f& position(void);
	const Vector3_16f& position(void) const;
	Vector3_16f& dimensions(void);
	const Vector3_16f& dimensions(void) const;

private:
	// Position vector
	Vector3_16f _position;

	// dimensions vector
	Vector3_16f _dimensions;
};

#endif